1. Field of the Invention
The invention relates to a method for transferring programs via a network, and more particularly, to a method for transferring programs according to demands of a plurality of terminals in a network system simultaneously.
2. Description of the Prior Art
In modern society, communications networks such as the Internet enable vast numbers of persons to communicate a virtually limitless variety of information across great distances. The development of the World Wide Web has enabled persons to find and display information in a multimedia format using a network terminal such as a personal computer (PC) or an information appliance (IA). If costs of increasing sophisticated network terminals and network equipment continue to fall, network terminal usage should ideally proliferate to a point of becoming rather ubiquitous and inter-connected. At some time in the future, most people will possess their own terminals and such terminals will become increasingly inter-networked with each other.
One effective way to reduce the costs of the network terminals is to access an operating system required by the network terminals via a network. It is well known by those skilled in the art that an operating system with a considerable size is necessary for a network terminal such as a PC or an IA. When the network terminal is turned on, the operating system is loaded and then executed to provide a program interface such as a graphic user interface for a user to access network information conveniently. In the prior art network terminal, the operating system is stored in a non-volatile memory device in the network terminal, e.g., a hard disk, such that the cost of the network terminal cannot be reduced due to the necessity of the non-volatile memory device. Therefore, the prevalence of using network terminals is impeded.
Please refer to FIG. 1 for illustration of a prior art network booting method. FIG. 1 is a schematic, flow chart of the prior art network booting method used in a network system 10 for transferring an operating system from a server 12 to a terminal 14 via a network 16. The vertical axis in FIG. 1 represents a time scale. It is well known by those skilled in the art that when a file with a considerable size is transferred via a network, the file is divided into a plurality of data packets with a smaller size so as to facilitate the transfer. The description herein assumes that an operating system has been divided into five data packets, i.e. data packets #1 to #5. In fact, more data packets may be generated for the transferred operating system. The terminal 14 is required to receive all of the data packets from the network 16 to combine these five data packets into a completed operating system so as to boot the terminal 14.
When the terminal 14 is turned on, the terminal 14 is ready to load in the operating system via the network 16 in step 14A. The terminal 14 transfers a signal packet 16A to the server 12 for requesting to boot via the network 16. After the server 12 receives the request for booting through the signal packet 16A from the terminal 14, the server 12 responds to the request in step 12A by transferring a first data packet 18A, i.e., the data packet #1, of the operating system via the network 16 to the terminal 14. After the terminal 14 receives the data packet #1 of the operating system in step 20A, the terminal 14 returns a confirmation packet #1 with a confirmation signal to the server 12 so as to notify the server 12 that the terminal 14 has received the data packet #1 of the operating system. After the server 12 receives the confirmation signal, the server 12 transfers the data packet #2 of the operating system to the terminal 14 in step 12B. After the terminal 14 receives the data packet #2, the terminal 14 returns a confirmation packet #2 with a confirmation signal to the server 12 so as to notify the server 12 that the terminal 14 has received the data packet #2 of the operating system.
Accordingly, after the terminal 14 receives a specific data packet of the operating system, the terminal 14 returns a confirmation packet with a confirmation signal to the server 12. Then, after the server 12 receives the confirmation signal from the terminal 14, the server 12 transfers the next data packet of the operating system via the network 16 to the terminal 14. Finally, in step 12E, after the server 12 receives a confirmation signal from the terminal 14 for confirming the data packet #4 of the operating system has been received by the terminal 14, the server 12 transfers the last data packet, i.e., the data packet #5, of the operating system to the terminal 14. After the terminal 14 receives the data packet #5 in step 20E, the terminal 14 returns a confirmation packet #5 to the server 12 so as to notify the server 12 that the terminal 14 has received the data packet #5. After the server 12 receives the confirmation signal from the terminal 14 in step 24, the server 12 realizes that the process of transferring the operating system to the terminal 14 is completed. Thus, this procedure continues to step 14B of combining the data packets #1 to #5 of the operating system into a completed operating system and then executing the operating system so as to boot the terminal 14.
In the prior art, after the server 12 transfers a specific data packet of the operating system to the terminal 14, the server 12 has to wait for the terminal 14 to return a confirmation signal during a timeout period so as to ensure that the terminal 14 does not lose the specific data packet due to a possible transferring accident, such as a jam of the communications network, or an unexpected interruption of transferring. The default timeout period is longer than a transferring period that equals to the duration of transferring the data packet from the server 12 to the terminal 14 plus the duration of returning the confirmation signal from the terminal 14 to the server 12. When the server 12 does not receive the confirmation signal returned from the terminal 14 after the timeout period, the server 12 presumes that the terminal 14 does not receive the data packet of the operating system. Therefore, the server 12 re-transfers the same data packet of the operating system and then waits the confirmation signal returned from the terminal 14. When the server 12 still does not receive the confirmation signal returned from the terminal 14 after another timeout period, the server 12 transfers the same data packet of the operating system repeatedly until the server 12 receives the confirmation signal returned from the terminal 14. Thereafter, the server 12 continues to transfer the next data packet of the operating system to the terminal 14 until the terminal 14 receives the completed operating system.
Although the prior art network booting method can ensure the completion of the transferred operating system, communication between the server 12 and a terminal consumes a huge quantity of time to complete the transfer of the entire operating system. Furthermore, in the prior art, the server 12 transfers all of the data packets of the operating system only to one terminal at a time. When more than two terminals, e.g., five terminals, request the server 12 to transfer the operating system, the server 12 has to transfer all of the data packets of the operating system five times. In addition, the server 12 also has to wait for receipt confirmation signals from the respective terminals. That is, the server 12 has to execute the entire procedure as shown in FIG. 1 while each of the terminals requests the transfer of the operating system.
It is quite obvious that when plenty of terminals request the server 12 to transfer the operating system simultaneously, the server 12 has to take a very long time to sequentially transfer the all data packets of the operating system to the respective terminals. Meanwhile, each of the terminals also has to wait a long time to acquire the completed operating system from the server 12 so as to boot the respective terminal. Unfortunately, the condition of simultaneously booting several terminals on a common network system is frequent. For example, all of terminals in the same office or in the same office building are booted at approximately the same time. Moreover, in a network teaching class of a school, all of terminals in the classroom are also booted at approximately the same time at the beginning of the class. Obviously, at a time when a huge amount of terminals are booted, the prior art network booting method causes the transfer of the operating system to be ineffective and adversely affects the demand of a high-speed network system.